The approaches described in this section are approaches that are known to the inventors and could be pursued. They are not necessarily approaches that have been pursued. Therefore, unless otherwise indicated, it should not be assumed that any of the approaches described in this section qualify as prior art merely by virtue of their inclusion in this section, or that those approaches are known to a person of ordinary skill in the art.
Improving the speed, responsiveness and efficiency of a distributed computer system, and applications executing on such systems, is a continuing goal of professional systems managers. However, accurately measuring the utilization of local and external resources of a complex computer program application can be challenging. Even when the design, architecture and structure of a program is thoroughly engineered in advance, actual code-writing may introduce unanticipated performance problems. Often these problems are extremely difficult to trace back to particular program elements such as methods or subroutines. For example, a systems analyst may notice that an application is putting a greater than expected load on external resources, such as numerous database calls, but in practice may have difficulty isolating which specific segment of code or method is the source of the problem.
When streamlining the performance of applications, identifying the precise location of errors or problematic issues in method calls is difficult because poorly performing patterns may only appear for certain customers and data shapes. Classic instrumentation techniques impose substantial overhead, and may negatively affect performance even more, when enabled. Therefore, there is a need for a faster way of accurately detecting and tracking errors in method calls.